/*
 * @Author: 陈亮
 * @LastEditors: 陈亮
 * @GitHub: https://github.com/drinkwd
 * @Description: 供分析报告，分析详情，事件管理详情使用(pdf下载)
 * @Date: 2019-03-13 17:07:08
 * @LastEditTime: 2019-04-08 10:29:07
 */
import JSPDF from './jspdf.min.js'
import html2canvas from './html2canvas.js'
export const downloadpdf = function (that, id, title = '分析报告') {
  let pdfDom = document.querySelector(id)
  if (that.download) {
    that.download = false
  }
  if (that.button) {
    that.button = false
  }
  if (that.count) {
    that.count = 999
  }
  html2canvas(pdfDom).then(canvas => {
    var contentWidth = canvas.width
    var contentHeight = canvas.height
    // 一页pdf显示html页面生成的canvas高度;
    var pageHeight = contentWidth / 592.28 * 841.89
    // 未生成pdf的html页面高度
    var leftHeight = contentHeight
    // 页面偏移
    var position = 0
    // a4纸的尺寸[595.28,841.89]，html页面生成的canvas在pdf中图片的宽高
    var imgWidth = 595.28
    var imgHeight = 592.28 / contentWidth * contentHeight

    var pageData = canvas.toDataURL('image/JPEG', 1.0)

    var pdf = new JSPDF('', 'pt', 'a4')

    // 有两个高度需要区分，一个是html页面的实际高度，和生成pdf的页面高度(841.89)
    // 当内容未超过pdf一页显示的范围，无需分页
    if (leftHeight < pageHeight) {
      pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth - 5, imgHeight)
    } else {
      while (leftHeight > 0) {
        pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
        leftHeight -= pageHeight
        position -= 841.89
        // 避免添加空白页
        if (leftHeight > 0) {
          pdf.addPage()
        }
      }
    }
    if (that.count) {
      that.count = 4
    }
    if (that.activeNames) {
      that.activeNames = '0'
    }
    if (that.button === false) {
      that.button = true
      that.$store.dispatch('/event/analysisReport', { eventId: that.$route.query.row, analysisId: that.$route.query.analyzeId, fun: that.storageData, limit: 10 })
    }
    that.download = true
    that.$store.commit('/event/changeLoading')
    pdf.save(`${title}.pdf`)
  })
}
